package com.sykj.why.mongo.service;

import com.sykj.why.mongo.document.entity.MenuT;
import com.sykj.why.mongo.dto.PageDTO;
import com.sykj.why.mongo.vo.entity.MenuTVo;
import com.sykj.why.util.Page;

import java.util.List;

/**
 * @author Eleven
 * @date 2019/6/4
 * @desc 菜单业务访问层
 */

public interface MenuTService extends BasicService<MenuT> {

    /**
     * 添加菜单
     * @param menuT
     */
    void saveMenu(MenuT menuT);

    /**
     * 删除菜单
     * @param id
     */
    void removeMenu(String id);

    /**
     * 修改菜单
     * @param menuT
     */
    void updateMenu(MenuT menuT);

    /**
     * 启用/禁用菜单
     * @param id
     * @param flag
     */
    void disableOrEnable(String id,boolean flag);

    /**
     * 验证菜单名称是否重复
     * @param menuT
     */
    void verifyName(MenuT menuT);

    /**
     * 通过id查询菜单
     * @param id
     * @return
     */
    MenuT findById(String id);

    /**
     * 查询所有菜单
     * @return
     */
    List<MenuT> findAll();

    /**
     * 分页查询菜单
     * @param pageDTO
     * @return
     */
    Page findByPage(PageDTO pageDTO);

    /**
     * 通过栏目Id和父级Id查询菜单树状图
     * @param programaId
     * @param pid
     * @return
     */
    List<MenuTVo> findMenuTreeByProgramaIdAndPid(String programaId,String pid);

    /**
     * 查询栏目下的菜单集合
     * @param programaId
     * @return
     */
    List<MenuT> findMenuListByProgramaId(String programaId);

}
